home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Apple II Sample Code / MPW IIGS SC / SC.024.Teach / teach.aii / uevent.aii < prev    next >
Encoding:
Text File  |  1990-06-24  |  3.4 KB  |  224 lines  |  [TEXT/MPS ]

  1. ***********************************************************************
  2. *
  3. * teach uevent.aii -- Version 3.0
  4. *
  5. * Copyright (c)
  6. * Apple Computer, Inc.  1986-1990
  7. * All Rights Reserved.
  8. *
  9. * Developer Technical Support Apple II Sample Code
  10. *
  11. * This file contains the teach program.
  12. *
  13. ***********************************************************************
  14.  
  15.     case  on
  16.     longi on
  17.     longa on
  18.  
  19.     INCLUDE 'm16.menu'
  20.     INCLUDE 'm16.util2'
  21.     INCLUDE 'e16.window'
  22.     INCLUDE 'm16.window'
  23.     INCLUDE 'teach.equ'
  24.  
  25. ***********************************************************************
  26.  
  27.     EXPORT enableDAItems
  28. enableDAItems    PROC
  29.  
  30.     pea UndoItem
  31.     _EnableMItem
  32.     pea CloseItem
  33.     _EnableMItem
  34.     pea $FF7F
  35.     pea EditMenuID
  36.     _SetMenuFlag
  37.     rts
  38.  
  39.     ENDP
  40.  
  41. ***********************************************************************
  42.  
  43.     EXPORT enableAppItems
  44. enableAppItems    PROC
  45.  
  46.     pea SelectAllItem
  47.     _EnableMItem
  48.     pea CloseItem
  49.     _EnableMItem
  50.     pea SaveItem
  51.     _EnableMItem
  52.     pea SaveAsItem
  53.     _EnableMItem
  54.     pea PageSetupItem
  55.     _EnableMItem
  56.     pea PrintItem
  57.     _EnableMItem
  58.     pea $FF7F
  59.     pea SizeMenuID
  60.     _SetMenuFlag
  61.     pea $FF7F
  62.     pea StyleMenuID
  63.     _SetMenuFlag
  64.     pea $FF7F
  65.     pea FontMenuID
  66.     _SetMenuFlag
  67.     pea $FF7F
  68.     pea EditMenuID
  69.     _SetMenuFlag
  70.     rts
  71.  
  72.     ENDP
  73.  
  74. ***********************************************************************
  75.  
  76.     EXPORT disableDAItems
  77. disableDAItems    PROC
  78.  
  79.     pea UndoItem
  80.     _DisableMItem
  81.     rts
  82.  
  83.     ENDP
  84.  
  85. ***********************************************************************
  86.  
  87.     EXPORT disableAppItems
  88. disableAppItems    PROC
  89.  
  90.     pea $0080
  91.     pea EditMenuID
  92.     _SetMenuFlag
  93.     pea $0080
  94.     pea FontMenuID
  95.     _SetMenuFlag
  96.     pea $0080
  97.     pea StyleMenuID
  98.     _SetMenuFlag
  99.     pea $0080
  100.     pea SizeMenuID
  101.     _SetMenuFlag
  102.     pea SaveItem
  103.     _DisableMItem
  104.     pea SaveAsItem
  105.     _DisableMItem
  106.     pea PageSetupItem
  107.     _DisableMItem
  108.     pea PrintItem
  109.     _DisableMItem
  110.     pea SelectAllItem
  111.     _DisableMItem
  112.     rts
  113.  
  114.     ENDP
  115.  
  116. ***********************************************************************
  117. *
  118. * CheckFrontW
  119. *
  120. * This routine checks the front window to see if any changes need
  121. * to be made to the    menu items.
  122. *
  123. * We do this so that the edit items are    only active when a desk
  124. * accessory is active.
  125. *
  126.     EXPORT checkFrontW
  127. checkFrontW    PROC
  128.     import lastWindow
  129.  
  130.     DefineStack
  131.  
  132. wptr    long    ;Must be at 1,s.
  133.  
  134. saveDPage    word
  135. returnAddr    word
  136.  
  137. ******************
  138.  
  139.     phd    ;Save directPage register.
  140.     pha    ;Make space for wptr.
  141.     pha
  142.     tsc
  143.     tcd    ;Set directPage register.
  144.  
  145.     _FrontWindow    ;wptr is the result    space.
  146.  
  147.     lda wptr    ;Same top window?
  148.     ldx wptr+2
  149.     cmp lastWindow
  150.     bne newTop
  151.     cpx lastWindow+2
  152.     beq exit
  153.  
  154. newTop    sta lastWindow
  155.     stx lastWindow+2
  156.     ora wptr+2
  157.     bne thereIsATop
  158.  
  159.     jsr disableDAItems
  160.     jsr disableAppItems
  161.     pea CloseItem
  162.     _DisableMItem
  163.     brl drawMenuBar
  164.  
  165. thereIsATop    pha
  166.     pei wptr+2
  167.     pei wptr
  168.     _GetSysWFlag
  169.     pla
  170.     beq ourWindow
  171.     jsr disableAppItems
  172.     jsr enableDAItems
  173.     brl drawMenuBar
  174.  
  175. ourWindow    jsr disableDAItems
  176.     jsr enableAppItems
  177.  
  178. drawMenuBar    _DrawMenuBar
  179.  
  180. exit    pla    ;Remove local space.
  181.     pla
  182.     pld    ;Restore directPage    register.
  183.     rts
  184.  
  185.     ENDP
  186.  
  187. ***********************************************************************
  188. *
  189. * mainEvent
  190. *
  191. * This is the main part of the program.     The program cycles    in this
  192. * loop until the user choose select.
  193. *
  194.     EXPORT mainEvent
  195. mainEvent    PROC
  196.     import event, doCloseTop, doMenu, quitFlag
  197.  
  198. loopLongAndHard    jsr checkFrontW
  199.  
  200.     pha
  201.     pea $FFFF
  202.     PushLong #event
  203.     _TaskMaster
  204.     pla
  205.     cmp #wInGoAway
  206.     bne aa
  207.     jsr doCloseTop
  208.     brl next
  209.  
  210. aa    cmp #wInSpecial
  211.     beq ab
  212.     cmp #wInMenuBar
  213.     bne next
  214. ab    jsr doMenu
  215.  
  216. next    lda quitFlag
  217.     beq loopLongAndHard
  218.  
  219.     rts
  220.  
  221.     ENDP
  222.  
  223.     END
  224.